package top.lidee.common.to;

import com.alipay.api.domain.*;
import com.fasterxml.jackson.annotation.JsonInclude;
import lombok.Getter;
import lombok.Setter;

import java.util.List;

/**
 * @author 张一恒
 * @version 1.0
 * @description: 直付通进件通用字段
 * @date 2024/9/26 11:46
 */
@Setter
@Getter
@JsonInclude(JsonInclude.Include.NON_NULL)
public class AlipayZftCreateCommonTo {

    //<editor-fold desc="AlipayZftCreateCommonTo">
    /**
     * 签约支付宝账户，用于协议确认，及后续二级商户增值产品服务签约时使用。本字段要求与商户名称name同名(个体工商户可以与name或cert_name相同)，且是实名认证支付宝账户
     */
    private String bindingAlipayLogonId;

    /**
     * 商户编号，由机构定义，需要保证在机构下唯一
     */
    private String externalId;

    /**
     * 商户别名。支付宝账单中的商户名称会展示此处设置的别名，如果涉及支付宝APP内的支付，支付结果页也会展示该别名。如果涉及当面付场景，请填写线下店铺名称
     */
    private String aliasName;

    /**
     * 商户类别码 mcc，可查看  <a href="https://mdn.alipayobjects.com/huamei_fctrxv/afts/file/A*3TMHRZ8ppa4AAAAAAAAAAAAADs2DAQ/%E8%BF%9B%E4%BB%B6MCC%E4%B8%8E%E8%B5%84%E8%B4%A8%E8%A6%81%E6%B1%82202212.xlsx">进件MCC与资质要求 202212.xlsx</a>，特殊行业要按照MCC说明中的资质一栏上传辅助资质，辅助资质要在 qualifications 中上传，会有人工审核。
     */
    private String mcc;

    /**
     * 进件的二级商户名称。一般情况下要与证件的名称相同。个体工商户类型可以放宽到法人名称
     */
    private String name;

    /**
     * 默认结算规则。当调用收单接口，结算条款中设置默认结算规则时，交易资金将结算至此处设置的默认结算目标账户中。其详细描述及收单接口传参示例参考功能包文档
     */
    private DefaultSettleRule defaultSettleRule;

    /**
     * 商户使用服务，可选值有：当面付、jsapi支付、app支付、wap支付、电脑支付、预授权支付、商户代扣、小程序支付、订单码支付。其值会影响其他字段必填性，详见其他字段描述
     */
    private List<String> service;

    /**
     * 结算支付宝账号，结算账号使用支付宝账号时必填。本字段要求与商户名称name同名，且是实名认证支付宝账户(个体工商户可以与name或cert_name相同)
     */
    private String alipayLogonId;

    /**
     * 经营地址。当使用当面付服务时，本字段要求必填。地址对象中省、市、区、地址必填，其余选填
     */
    private AddressInfo businessAddress;

    /**
     * 商户行业资质，当商户是特殊行业时必填。每项行业资质信息中，industry_qualification_type和industry_qualification_image均必填
     */
    private List<IndustryQualificationInfo> qualifications;

    /**
     * 二级商户与服务商的签约时间
     */
    private String signTimeWithIsv;
    //</editor-fold>
}
